Don't generate mipmaps needlessly
authorMatthias Clasen <mclasen@redhat.com>
Sun, 2 Jun 2019 15:54:50 +0000 (15:54 +0000)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 2 Jun 2019 18:29:11 +0000 (18:29 +0000)
GL_LINEAR doesn't use mipmaps, so don't generate them.

gsk/gl/gskgldriver.c

index d73575da062522b1c5cc26c37c15f8ecfd605786..276f01fc6c385ea9c89c222e713d8957532665ae 100644 (file)
@@ -756,6 +756,12 @@ gsk_gl_driver_init_texture_empty (GskGLDriver *self,
   glBindTexture (GL_TEXTURE_2D, 0);
 }
 
+static gboolean
+filter_uses_mipmaps (int filter)
+{
+  return filter != GL_NEAREST && filter != GL_LINEAR;
+}
+
 void
 gsk_gl_driver_init_texture_with_surface (GskGLDriver     *self,
                                          int              texture_id,
@@ -791,6 +797,6 @@ gsk_gl_driver_init_texture_with_surface (GskGLDriver     *self,
   t->min_filter = min_filter;
   t->mag_filter = mag_filter;
 
-  if (t->min_filter != GL_NEAREST)
+  if (filter_uses_mipmaps (t->min_filter))
     glGenerateMipmap (GL_TEXTURE_2D);
 }